package handling.opcode


enum class NPCTalkOP(private var type: Byte) {

    SM_SAY(0),
    SM_SAYIMAGE(2),
    SM_ASKYESNO(3),
    SM_ASKTEXT(4),
    SM_ASKNUMBER(5),
    SM_ASKMENU(6),
    SM_ASKQUIZ(7),
    SM_ASKSPEEDQUIZ(8),
    SM_ASKICQUIZ(9),
    SM_ASKAVATAREX(10),
    SM_ASKANDROID(11),
    SM_ASKPET(12),
    SM_ASKPETALL(13),
    SM_ASKACTIONPET_EVOLUTION(14),
    SM_SCRIPT(15),
    SM_ASKACCEPT(16),
    SM_ASKBOXTEXT(18),
    SM_ASKSLIDEMENU(19),
    SM_ASKINGAMEDIRECTION(20),
    SM_PLAYMOVIECLIP(21),
    SM_ASKCENTER(22),
    SM_ASKSELECTMENU(24),
    SM_ASKANGELICBUSTER(25),
    SM_SAY_ILLUSTRATION(26),
    SM_MONOLOGUE(35),
    SM_ASK_WEAPONBOX(36),
    SM_ASKBOXTEXT_BGIMG(37),
    SM_ASK_USER_SURVEY(38),
    SM_SUCCESS_CAMERA(39),
    SM_ASKMIXHAIR(40),
    SM_ASKMIXHAIR_EX_ZERO(41),
    SM_ASKCUSTOMMIXHAIR(42),
    SM_ASKCUSTOMMIXHAIR_AND_PROB(43),
    SM_ASKMIXHAIR_NEW(44),
    SM_ASKMIXHAIR_NEW_EX_ZERO(45),
    SM_NPCACTION(46),
    SM_ASK_SCREEN_SHINNING_STAR_MSG(47),
    SM_INPUT_UI(48),
    SM_ASKNUMBER_KEYPAD(50),
    SM_SPINOFF_GUITAR_RHYTHMGAME(51),
    SM_ASK_GHOSTPARK_ENTER_UI(52);

    fun getValue(): Byte = type

    fun setValue(newval: Byte) {
        type = newval
    }

    companion object {
        fun getNPCTalkOP(by2: Byte): NPCTalkOP? = NPCTalkOP.values().firstOrNull { it.type == by2 }
    }
}